Implement progress bars for track read.
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 30 Apr 2006 04:07:55 +0000 (04:07 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 30 Apr 2006 04:07:55 +0000 (04:07 +0000)
gpsbabel/jeeps/gps.h
gpsbabel/jeeps/gpsapp.c
gpsbabel/jeeps/gpsapp.h
gpsbabel/jeeps/gpscom.c
gpsbabel/jeeps/gpscom.h

index 93ca4bf9134787aed94f305d3ad9fb6ac44d5b1f..35062287b5fe84bd08e807638b8f29dbf458a64c 100644 (file)
@@ -179,7 +179,7 @@ typedef struct GPS_SLap_Data {
        UC      track_index;
 } GPS_OLap_Data, *GPS_PLap_Data;
 
-
+typedef int (*pcb_fn) (int, struct GPS_SWay **);
 
 #include "gpsdevice.h"
 #include "gpssend.h"
index 80b789a38f618ae0189dc5e535da218c55aa4992..bf8ef5a9915ecfd31748b725e9cf28cc02bd3a04 100644 (file)
@@ -3340,7 +3340,7 @@ static void GPS_D210_Send(UC *data, GPS_PWay way, int32 *len)
 **
 ** @return [int32] number of track entries
 ************************************************************************/
-int32 GPS_A300_Get(const char *port, GPS_PTrack **trk)
+int32 GPS_A300_Get(const char *port, GPS_PTrack **trk, pcb_fn cb)
 {
     static UC data[2];
     gpsdevh *fd;
@@ -3469,7 +3469,7 @@ drain_run_cmd(gpsdevh *fd)
 **
 ** @return [int32] number of track entries
 ************************************************************************/
-int32 GPS_A301_Get(const char *port, GPS_PTrack **trk)
+int32 GPS_A301_Get(const char *port, GPS_PTrack **trk, pcb_fn cb)
 {
     static UC data[2];
     gpsdevh *fd;
@@ -3477,6 +3477,7 @@ int32 GPS_A301_Get(const char *port, GPS_PTrack **trk)
     GPS_PPacket rec;
     int32 n;
     int32 i;
+    int ntrkpts;
 
     if(gps_trk_transfer == -1)
        return GPS_UNSUPPORTED;
@@ -3576,6 +3577,8 @@ int32 GPS_A301_Get(const char *port, GPS_PTrack **trk)
            GPS_Error("A301_GET: Unknown track protocol");
            return PROTOCOL_ERROR;
        }
+       /* Cheat and don't _really_ pass the trkpt back */
+       cb(n, NULL);
     }
 
     if(!GPS_Packet_Read(fd, &rec))
index e12208e4babe82f561df463a7ebb52b4f8a67331..2d9ead9c1172112dc01702e9a86db449fa5f3e27 100644 (file)
@@ -20,8 +20,8 @@ int32  GPS_A201_Get(const char *port, GPS_PWay **way);
 int32  GPS_A200_Send(const char *port, GPS_PWay *way, int32 n);
 int32  GPS_A201_Send(const char *port, GPS_PWay *way, int32 n);
 
-int32  GPS_A300_Get(const char *port, GPS_PTrack **trk);
-int32  GPS_A301_Get(const char *port, GPS_PTrack **trk);
+int32  GPS_A300_Get(const char *port, GPS_PTrack **trk, pcb_fn cb);
+int32  GPS_A301_Get(const char *port, GPS_PTrack **trk, pcb_fn cb);
 int32  GPS_A300_Send(const char *port, GPS_PTrack *trk, int32 n);
 int32  GPS_A301_Send(const char *port, GPS_PTrack *trk, int32 n);
 
index e8a2874e1048da846ad7b2304cb9b6749282f889..e2fe2afd664999b136a688ba683f7c4a95a31c3d 100644 (file)
@@ -83,7 +83,7 @@ int32 GPS_Command_Off(const char *port)
 ** @return [int32] number of waypoint entries
 ************************************************************************/
 
-int32 GPS_Command_Get_Waypoint(const char *port, GPS_PWay **way, int (*cb)(int, struct GPS_SWay **))
+int32 GPS_Command_Get_Waypoint(const char *port, GPS_PWay **way, pcb_fn cb)
 {
     int32 ret=0;
 
@@ -219,7 +219,7 @@ int32 GPS_Command_Send_Route(const char *port, GPS_PWay *way, int32 n)
 ** @return [int32] number of track entries
 ************************************************************************/
 
-int32 GPS_Command_Get_Track(const char *port, GPS_PTrack **trk)
+int32 GPS_Command_Get_Track(const char *port, GPS_PTrack **trk, pcb_fn cb)
 {
     int32 ret=0;
 
@@ -229,11 +229,11 @@ int32 GPS_Command_Get_Track(const char *port, GPS_PTrack **trk)
     switch(gps_trk_transfer)
     {
     case pA300:
-       ret = GPS_A300_Get(port,trk);
+       ret = GPS_A300_Get(port,trk,cb);
        break;
     case pA301:
     case pA302:
-       ret = GPS_A301_Get(port,trk);
+       ret = GPS_A301_Get(port,trk,cb);
        break;
     default:
        GPS_Error("Get_Track: Unknown track protocol %d\n", gps_trk_transfer);
index 40f49c21987f5729f5266a6c9614eaf7ae7bd5f5..96e10f0558344ca6081594ff2c2207d8fc6424b9 100644 (file)
@@ -25,7 +25,7 @@ int32  GPS_Command_Pvt_Get(gpsdevh **fd, GPS_PPvt_Data *pvt);
 int32  GPS_Command_Get_Almanac(const char *port, GPS_PAlmanac **alm);
 int32  GPS_Command_Send_Almanac(const char *port, GPS_PAlmanac *alm, int32 n);
 
-int32  GPS_Command_Get_Track(const char *port, GPS_PTrack **trk);
+int32  GPS_Command_Get_Track(const char *port, GPS_PTrack **trk, int (*cb)(int, struct GPS_SWay **));
 int32  GPS_Command_Send_Track(const char *port, GPS_PTrack *trk, int32 n);
 
 int32  GPS_Command_Get_Waypoint(const char *port, GPS_PWay **way,int (*cb)(int, struct GPS_SWay **));